home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-06-27 | 1003 b | 44 lines | [TEXT/McSk] |
- \ Pick a random number from 0 to n
- : SEED ( -- daddr ) ,$ 2d15 126 0 dnegate d+ ;
- : RANDOMIZE 524 0 dl@ seed dl! ;
- : RANDOM ( n -- n' )
- 0 >r ,$ A861 r> ( _Random )
- swap 32768 */ abs ; ( scale to size from stack )
- : 0TO4 ( -- n ) 5 random ;
-
- variable BINS 8 allot
- : ZEROS bins ;
- : ONES bins 2+ ;
- : TWOS ones 2+ ;
- : THREES twos 2+ ;
- : FOURS threes 2+ ;
-
- : SPACES ( n -- )
- ?dup IF 0 DO space LOOP THEN ; \ emit n spaces
- : D.R ( d width -- )
- >r swap over dabs <# #s sign #>
- r> over - spaces type space ;
- : .R ( n width -- ) >r s>d r> d.r ;
- : U.R ( u width -- ) 0 swap d.r ;
- : .BINS ( -- ) cr
- zeros @ 4 .r
- ones @ 4 .r
- twos @ 4 .r
- threes @ 4 .r
- fours @ 4 .r ;
-
- : test ( trials -- )
- bins 10 0 fill
- 0 DO
- 0to4
- dup 0= IF 1 zeros +! THEN
- dup 1 = IF 1 ones +! THEN
- dup 2 = IF 1 twos +! THEN
- dup 3 = IF 1 threes +! THEN
- dup 4 = IF 1 fours +! THEN
- drop
- LOOP .bins ;
- : run begin 5000 test ?terminal until ;
-
-
-